/*
 *  rota.cpp
 *  DARP_C++
 *
 *  Created by Daniel Leite on 05/06/11.
 *  Copyright 2011 __MyCompanyName__. All rights reserved.
 *
 */
#include <iostream>
#include <list>
#include <vector>
#include </home/daniel/workspace/DARP_Mestrado/src/rota.h>

using namespace std;
using std::vector;

//Rota::Rota{
/**private:
    vector<int> rota;
    vector<double> A;
    vector<double> B;
    vector<double> D;
    vector<double> W;
    vector<double> R;
    vector<double> T;
    vector<double> Q;
    vector<double> F;
    int tempoTotalDestaRota;
    int cargaMaximaDoVeiculo;
    int cacidadeDoVeiculo;
    int tempoMaximoDeViagemPermitido;
   */

    Rota::Rota(vector<int> rota, vector<double> A, vector<double> B, vector<double> D,
        vector<double> W, vector<double> R, vector<double> T, vector<double> Q, vector<double> F)
{
    this->rota = rota;
    this->A = A;
    this->B = B;
    this->D = D;
    this->W = W;
    this->R = R;
    this->T = T;
    this->Q = Q;
    this->F = F;

}

vector<double> Rota::getA(){
    return this->A;
}
vector<double> Rota::getB(){
    return this->B;
}
vector<double> Rota::getD(){
    return this->D;
}
vector<double> Rota::getW(){
    return this->W;
}
vector<double> Rota::getR(){
    return this->R;
}
vector<double> Rota::getT(){
    return this->T;
}
vector<double> Rota::getQ(){
    return this->Q;
}
vector<double> Rota::getF(){
    return this->F;
}

void Rota::setA(int Av){
    this->A.push_back(Av);
}
void Rota::setB(int Bv){
    this->B.push_back(Bv);
}
void Rota::setD(int Dv){
    this->D.push_back(Dv);
}
void Rota::setW(int Wv){
    this->W.push_back(Wv);
}
void Rota::setR(int Rv){
    this->R.push_back(Rv);
}
void Rota::setT(int Tv){
    this->T.push_back(Tv);
}
void Rota::setQ(int Qv){
    this->Q.push_back(Qv);
}
void Rota::setF(int Fv){
    this->F.push_back(Fv);
}

void Rota::setVectorA(vector<double> Av){
    this->A = (Av);
}
void Rota::setVectorB(vector<double> Bv){
    this->B = (Bv);
}
void Rota::setVectorD(vector<double> Dv){
    this->D = (Dv);
}
void Rota::setVectorW(vector<double> Wv){
    this->W = (Wv);
}
void Rota::setVectorR(vector<double> Rv){
    this->R = (Rv);
}
void Rota::setVectorT(vector<double> Tv){
    this->T = Tv;
}
void Rota::setVectorQ(vector<double> Qv){
    this->Q = Qv;
}
void Rota::setVectorF(vector<double> Fv){
    this->F = Fv;
}




double Rota::getTempoTotalDestaRota(){
    return this->tempoTotalDestaRota;
}

double Rota::getCargaMaximaDoVeiculo(){
    return this->cargaMaximaDoVeiculo;
}

double Rota::getCacidadeDoVeiculo(){
    return this->cacidadeDoVeiculo;
}

double Rota::getTempoMaximoDeViagemPermitido(){
    return this->tempoMaximoDeViagemPermitido;
}

vector<int> Rota::getRota(){
    return this->rota;
}
void Rota::setRota(vector<int> rota){
    this->rota= rota;
}


void Rota::setTempoTotalDestaRota(int tempoTotal){
    this->tempoTotalDestaRota = tempoTotal;
}

void Rota::setCargaMaximaDoVeiculo(int cargaMaxima){
    this->cargaMaximaDoVeiculo = cargaMaximaDoVeiculo;
}

void Rota::setCacidadeDoVeiculo(int capacidadeVeiculos){
    this->cacidadeDoVeiculo = capacidadeVeiculos;
}

void Rota::setTempoMaximoDeViagemPermitido(int tempoMaxViagem){
    this->tempoMaximoDeViagemPermitido = tempoMaxViagem;
}
